/*
 * table_Expression.h
 *
 *  Created on: 2012/04/28
 *      Author: guanxiaoying
 */

#ifndef TABLE_EXPRESSION_H_
#define TABLE_EXPRESSION_H_

typedef struct _EXPRESSIONACCESS{
	BOOL (*clear)( VOID );
	BOOL (*reset)( VOID );
	BOOL (*alloc)( AST );
	AST  (*getMax)( VOID );
	ACCESS_U4_FIELD   opKind;
	ACCESS_IDX_FIELD  result_value;
	ACCESS_IDX_FIELD  result_constStr;
	ACCESS_IDX_FIELD  result_declaration;
	ACCESS_IDX_FIELD  result_symbol;
	ACCESS_IDX_FIELD  result_temp_token;
	ACCESS_IDX_FIELD  result_statement;
	ACCESS_IDX_FIELD  result_exprlist;
	ACCESS_IDX_FIELD  type;
	ACCESS_IDX_FIELD  castedType;
	ACCESS_IDX_FIELD  constValue;
	ACCESS_IDX_FIELD  codeScp;
	ACCESS_BOOL_FIELD bIllegal;
	ACCESS_BOOL_FIELD blValue;
	ACCESS_BOOL_FIELD bModifiabe;
	ACCESS_S2_FIELD  constFlg;
	ACCESS_U2_FIELD  parentKind;
	ACCESS_IDX_FIELD parent_statement;
	ACCESS_IDX_FIELD parent_expression;
	ACCESS_IDX_FIELD parent_explist;
	ACCESS_IDX_FIELD parent_declarator;
	ACCESS_IDX_FIELD parent_designation;
	ACCESS_IDX_FIELD leftChild;
	ACCESS_IDX_FIELD rightChild;

}EXPRESSIONACCESS;

extern const EXPRESSIONACCESS stExpressionAccess;
#endif /* TABLE_EXPRESSION_H_ */
